#ifndef ROUNDABOUTPAGES_H
#define ROUNDABOUTPAGES_H

#include <QWidget>
class QGridLayout;
class QVBoxLayout;
class QHBoxLayout;
class QLabel;
class QSlider;
class QSpinBox;
class QCheckBox;
class QComboBox;

/*!
 \class RoundaboutPage
 \brief Zakładka w opcjach okienkowych odpowiedzialna za ustawienia dotyczące ronda

  Zakładka jest tworzona w konstruktorze klasy Options::Options().
  Umożliwia zmianę wielkości ronda(promienia) i szerokość ulicy. Pozwala ustawić liczbę pasów na rondzie
  oraz czy rysować bariery (patrz: \link Barrier::Barrier() \endlink).
  */
class RoundaboutPage : public QWidget
{
    Q_OBJECT
public:
    RoundaboutPage(QWidget *parent = 0);
    int getRadius();//promien
    int getRimNumLanes();//liczba pasow na rondzie
    int getWidthLane();//szerokość pasów
    int drawBarriers();//czy rysować bariery
    void readRoundaboutSettings();
    int getNumLanesOnBranch();


signals:
    void changeNumLane(int ); /*!< Klasa RoundaboutPages łączy sygnał valueChanged z changeNumLane a nastepnie klasa mainOption łączy sygnał changeNumLane ze slotem klasy RoadsPage (changeNumLanesFromRoadPages)*/
private:
    void configureRoundaboutPage();
    QLabel *_promienRondaLabel; /*!< Etykieta promienia ronda.*/
    QSlider *_promienRondaSlider; /*!< QSlider odpowiadający za wartość promienia ronda. Powiązany z _promienRondaSpinBox*/
    QSpinBox *_promienRondaSpinBox; /*!< QSpinBox odpowiadający za wartość promienia ronda. Powiązany z _promienRondaSlider*/

    QLabel *_lPasowRondoLabel; /*!< Etykieta liczby pasów.*/
    QSlider *_lPasowRondoSlider; /*!< QSlider odpowiadający za liczbę pasów na rondzie. Powiązany z _lPasowRondoSpinBox*/
    QSpinBox *_lPasowRondoSpinBox; /*!< QSpinBox odpowiadający za liczbę pasów na rondzie. Powiązany z _lPasowRondoSlider*/

    QLabel *_szerokoscUlicyLabel; /*!< Etykieta szerokości ulicy.*/
    QSlider *_szerokoscUlicySlider; /*!< QSlider odpowiadający za szerokość ulicy. Powiązany z _szerokoscUlicySpinBox*/
    QSpinBox *_szerokoscUlicySpinBox; /*!< QSpinBox odpowiadający za szerokość ulicy. Powiązany z _szerokoscUlicySlider*/

    QCheckBox *_rysujBarieryCheckBox; /*!< QCheckBox, który przekazuje informację, czy rysować bariery.*/

    QGridLayout *_topLayout; /*!< Umieszczony na _mainLayout. Do _topLayout są przypięte widgety tej klasy.*/
    QVBoxLayout *_mainLayout; /*!< Główny layout.*/

};

#endif // ROUNDABOUTPAGES_H

